/*
 * Copyright (C), 2014-2016, org.esaydev
 * FileName: QcodeAPI.java
 * Author:   jian
 * Date:     2016年3月24日 
 */
package org.easydev.wechat.api;

import org.easydev.wechat.client.dto.qcode.QcodeCreate;
import org.easydev.wechat.client.dto.qcode.ShortUrlGet;
import org.easydev.wechat.client.result.base.BaseWechatResult;
import org.easydev.wechat.common.exception.WechatException;

/**
 * <Description>二维码API <br>
 * 
 * @author jian<br>
 */
public class QcodeAPI extends SystemAPI {

    /**
     * Description: 生成二维码<br>
     * <br>
     * 公众平台提供了生成带参数二维码的接口。使用该接口可以获得多个带不同场景值的二维码，<br>
     * 用户扫描后，公众号可以接收到事件推送。<br>
     * 用户扫描带场景值二维码时，可能推送以下两种事件：<br>
     * 如果用户还未关注公众号，则用户可以关注公众号，关注后微信会将带场景值关注事件推送给开发者。<br>
     * 如果用户已经关注公众号，在用户扫描后会自动进入会话，微信也会将带场景值扫描事件推送给开发者。<br>
     * 
     * @param qc <br>
     * @return 若result.isSuccess(),结果对象是result.getData(Qcode.class)<br>
     * @throws WechatException <br>
     */
    public static BaseWechatResult createQcode(QcodeCreate qc) throws WechatException {
        return client.getFromWechat(qc);
    }

    /**
     * Description: 将一条长链接转成短链接。 <br>
     * 主要使用场景： 开发者用于生成二维码的原链接（商品、支付二维码等）太长导致扫码速度和成功率下降， <br>
     * 将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。<br>
     * 
     * @param su <br>
     * @return 若result.isSuccess(),结果对象是result.getData(ShortUrl.class)<br>
     * @throws WechatException <br>
     */
    public static BaseWechatResult getShortUrl(ShortUrlGet su) throws WechatException {
        return client.getFromWechat(su);
    }

}
